﻿using System.Collections.Frozen;
using System.Runtime.CompilerServices;

namespace Sage.WXWork
{
    /// <summary>
    ///  企业微信全局错误码
    /// </summary>
    public class ErrorProvider
    {
        /// <summary>
        /// 企业微信全局错误码与错误信息的只读字典
        /// </summary>
        private static readonly FrozenDictionary<int, string> ErrorMessages = new Dictionary<int, string>
        {
            #region 基础错误码
            { -1, "系统繁忙，服务器暂不可用，建议稍候重试" },
            { 0, "请求成功" },
            { 6000, "数据版本冲突，可能有多个调用端同时修改数据" },
            #endregion

            #region 参数错误 (40000-40999)
            { 40001, "不合法的secret参数" },
            { 40003, "无效的UserID" },
            { 40004, "不合法的媒体文件类型" },
            { 40005, "不合法的type参数" },
            { 40006, "不合法的文件大小" },
            { 40007, "不合法的media_id参数" },
            { 40008, "不合法的msgtype参数" },
            { 40009, "上传图片大小不是有效值" },
            { 40011, "上传视频大小不是有效值" },
            { 40013, "不合法的CorpID" },
            { 40014, "不合法的access_token" },
            { 40016, "不合法的按钮个数（应为1-3个）" },
            { 40017, "不合法的按钮类型" },
            { 40018, "不合法的按钮名字长度（不超过16字节）" },
            { 40019, "不合法的按钮KEY长度（不超过128字节）" },
            { 40020, "不合法的按钮URL长度（不超过1024字节）" },
            { 40022, "不合法的子菜单级数（仅支持二级菜单）" },
            { 40023, "不合法的子菜单按钮个数（应为1-5个）" },
            { 40024, "不合法的子菜单按钮类型" },
            { 40025, "不合法的子菜单按钮名字长度" },
            { 40026, "不合法的子菜单按钮KEY长度" },
            { 40027, "不合法的子菜单按钮URL长度（不超过1024字节）" },
            { 40029, "不合法的oauth_code" },
            { 40031, "不合法的UserID列表" },
            { 40032, "不合法的UserID列表长度" },
            { 40033, "不合法的请求字符（不能包含\\uxxxx格式字符）" },
            { 40035, "不合法的参数" },
            { 40036, "不合法的模板id长度" },
            { 40037, "无效的模板id" },
            { 40039, "不合法的url长度（不超过1024字节）" },
            { 40050, "chatid不存在" },
            { 40054, "不合法的子菜单url域名" },
            { 40055, "不合法的菜单url域名" },
            { 40056, "不合法的agentid" },
            { 40057, "不合法的callbackurl或验证失败" },
            { 40058, "不合法的参数" },
            { 40059, "不合法的上报地理位置标志位（0或1）" },
            { 40063, "参数为空" },
            { 40066, "不合法的部门列表" },
            { 40068, "不合法的标签/标签组ID" },
            { 40070, "指定的标签范围节点全部无效" },
            { 40071, "不合法的标签名字（已存在）" },
            { 40072, "不合法的标签名字长度（不超过32字）" },
            { 40073, "不合法的openid" },
            { 40074, "news消息不支持保密消息类型" },
            { 40077, "不合法的pre_auth_code" },
            { 40078, "不合法的auth_code" },
            { 40080, "不合法的suite_secret" },
            { 40082, "不合法的suite_token" },
            { 40083, "不合法的suite_id" },
            { 40084, "不合法的permanent_code" },
            { 40085, "不合法的suite_ticket" },
            { 40086, "不合法的第三方应用appid" },
            { 40088, "jobid不存在" },
            { 40089, "批量任务的结果已清理（仅保留最近5次）" },
            { 40091, "secret不合法" },
            { 40092, "导入文件存在不合法的内容" },
            { 40093, "jsapi签名错误" },
            { 40094, "不合法的URL（需以http://或https://开头）" },
            { 40096, "不合法的外部联系人userid" },
            { 40097, "该成员尚未离职" },
            { 40098, "成员尚未实名认证" },
            { 40099, "成员的外部联系人数量已达上限" },
            #endregion

            #region 权限/资源错误  (41000-41999)
            { 41001, "缺少access_token参数" },
            { 41002, "缺少corpid参数" },
            { 41004, "缺少secret参数" },
            { 41006, "缺少media_id参数" },
            { 41008, "缺少auth code参数" },
            { 41009, "缺少userid参数" },
            { 41010, "缺少url参数" },
            { 41011, "缺少agentid参数" },
            { 41016, "缺少title参数" },
            { 41017, "缺少tagid参数" },
            { 41018, "缺少标签名" },
            { 41019, "缺少department参数" },
            { 41021, "缺少suite_id参数" },
            { 41022, "缺少suite_access_token参数" },
            { 41023, "缺少suite_ticket参数" },
            { 41024, "缺少secret参数" },
            { 41025, "缺少permanent_code参数" },
            { 41033, "缺少description参数" },
            { 41035, "缺少外部联系人userid参数" },
            { 41036, "不合法的企业对外简称" },
            { 41037, "缺少「联系我」type参数" },
            { 41038, "缺少「联系我」scene参数" },
            { 41039, "无效的「联系我」type参数" },
            { 41040, "无效的「联系我」scene参数" },
            { 41041, "「联系我」使用人数超过限制（默认100人）" },
            { 41042, "无效的「联系我」style参数" },
            { 41043, "缺少「联系我」config_id参数" },
            { 41044, "无效的「联系我」config_id参数" },
            { 41045, "API添加「联系我」达到数量上限" },
            { 41046, "缺少企业群发消息id" },
            { 41047, "无效的企业群发消息id" },
            { 41048, "无可发送的客户" },
            { 41049, "缺少欢迎语code参数" },
            { 41050, "无效的欢迎语code（需在添加好友后20秒内使用）" },
            { 41051, "客户和服务人员已经开始聊天" },
            { 41052, "无效的发送时间" },
            { 41053, "客户未同意聊天存档" },
            { 41054, "该用户尚未激活" },
            { 41055, "群欢迎语模板数量达到上限" },
            { 41056, "外部联系人id类型不正确" },
            { 41057, "企业或服务商未绑定微信开发者账号" },
            { 41058, "无此群欢迎语模板的编辑权限" },
            { 41059, "缺少moment_id参数" },
            { 41060, "不合法的moment_id参数" },
            { 41061, "不合法朋友圈发送成员userid" },
            { 41062, "企业创建的朋友圈尚未被成员发表" },
            { 41063, "群发消息正在派发中" },
            { 41064, "附件数量超过限制" },
            { 41065, "无效的附件类型" },
            { 41066, "用户视频号名称错误" },
            { 41067, "朋友圈moment_id类型错误" },
            { 41068, "聊天敏感词列表超过了限制" },
            { 41069, "聊天敏感词规则总数超过了限制" },
            { 41070, "无效的聊天敏感词规则id" },
            { 41071, "聊天敏感词规则已经被删除" },
            { 41072, "资源附件场景使用错误" },
            { 41073, "商品图册描述不符合标准" },
            { 41074, "商品图册数据已经被删除" },
            { 41075, "无效的商品图册id" },
            { 41076, "聊天敏感词规则适用范围超过限制" },
            { 41077, "聊天敏感词规则名称不唯一" },
            { 41078, "创建朋友圈异步任务总数超过了限制" },
            { 41079, "朋友圈正在派发中" },
            { 41080, "附件资源大小超过限制" },
            { 41081, "附件资源的图片分辨率超过限制" },
            { 41082, "附件资源的视频时长超过限制" },
            { 41083, "敏感词关键字错误" },
            { 41084, "敏感词拦截语义规则错误" },
            { 41085, "无效商品编码" },
            { 41086, "无效商品价格" },
            { 41087, "无效商品描述" },
            { 41088, "附件列表为空" },
            { 41089, "朋友圈附件与内容不能同时为空" },
            { 41090, "视频格式不合法（需为mp4）" },
            { 41091, "配置客户群进群方式最多关联5个群" },
            { 41093, "群发任务已取消" },
            { 41094, "群发提醒超过频率限制" },
            { 41095, "获客链接数量超过上限" },
            { 41096, "欢迎语已在发送中" },
            { 41098, "组件关联应用创建的获客链接授权给了其他组件" },
            { 41099, "不是服务商代支付模式" },
            { 41102, "缺少菜单名" },
            { 41200, "仅部分经营类目企业支持" },
            { 41201, "无效的获客助手会话信息chatkey" },
            { 41202, "商品图册数量超过上限" },
            { 41210, "企业创建的朋友圈数量不能超过10w/月" },
            { 41211, "企业未开通朋友圈功能" },
            { 41300, "当前群发模版未进行渲染" },
            { 41301, "无效的群发模版占位符" },
            { 41302, "群发模版占位符数量超过限制" },
            { 41303, "群发指定的关系对数量超过上限" },
            { 41304, "该模版任务已创建过群发" },
            { 41305, "未设置企业经营类目" },
            #endregion

            #region Token/授权错误 (42000-42999)
            { 42001, "access_token已过期" },
            { 42003, "code已过期" },
            { 42006, "登录态失效（使用会话展示组件时）" },
            { 42007, "pre_auth_code已过期" },
            { 42009, "suite_access_token已过期" },
            { 42012, "jsapi_ticket不可用" },
            { 42013, "小程序未登陆或登录态已过期" },
            { 42014, "任务卡片消息的task_id不合法" },
            { 42015, "更新的消息与发送消息的应用不匹配" },
            { 42016, "更新的task_id不存在" },
            { 42017, "按钮key值不存在" },
            { 42018, "按钮key值不合法" },
            { 42019, "缺少按钮key值" },
            { 42020, "缺少按钮名称" },
            { 42021, "device_access_token过期" },
            { 42022, "code已经被使用过" },
            { 42027, "Template_Card.horizontal_content_list.keyname字段缺失" },
            { 42028, "Template_Card缺失Url字段" },
            { 42029, "Template_Card缺失mediaid字段" },
            { 42030, "Template_Card缺失appid字段" },
            { 42031, "Template_Card.CardType字段不合法" },
            { 42033, "Template_Card缺失Title字段" },
            { 42035, "Template_Card.horizontal_content_list数组长度不合法" },
            { 42036, "Template_Card.vertical_content_list数组长度不合法" },
            { 42037, "Template_Card.option_list数组长度不合法" },
            { 42038, "Template_Card.button_list.text缺失或不合法" },
            { 42039, "Template_Card.button_list.key缺失或不合法" },
            { 42040, "Template_Card.option_list.id缺失或不合法" },
            { 42041, "Template_Card.option_list.text缺失或不合法" },
            { 42042, "Template_Card.jump_list数组长度不合法" },
            { 42043, "Template_Card.question_Key缺失或不合法" },
            { 42044, "Template_Card.card_image.url缺失或不合法" },
            { 42045, "Template_Card.card_action缺失或不合法" },
            { 42046, "Template_Card.submit_button.key缺失或不合法" },
            { 42047, "Template_Card.select_list数组长度不合法" },
            { 42049, "Template_Card.submit_button.text缺失或不合法" },
            { 42050, "Template_Card.horizontal_content_list.userid缺失或不合法" },
            { 42051, "Template_Card.action_menu.action_list.key冲突" },
            #endregion

            #region 文件/多媒体错误 (44000-44999)
            { 44001, "多媒体文件为空" },
            { 44004, "文本消息content参数为空" },
            { 45001, "多媒体文件大小超过限制（图片/音频≤5M，文件≤20M）" },
            { 45002, "消息内容大小超过限制（文本≤2048字节，图文≤666KB）" },
            { 45004, "应用description参数长度不符合限制（4-120字符）" },
            { 45007, "语音播放时间超过限制（≤60秒）" },
            { 45009, "图文消息的文章数量不符合限制（≤8条）" },
            { 45022, "应用name参数长度不符合限制（≤32字符）" },
            { 45024, "账号数量超过上限" },
            { 45026, "触发删除用户数的保护限制" },
            { 45029, "回包大小超过上限" },
            { 45031, "企业corpsecret不够安全，请重置" },
            { 45032, "图文消息author参数长度超过限制（≤64字节）" },
            { 45033, "接口并发调用超过限制" },
            { 45034, "url必须有协议头（http://或https://）" },
            { 45035, "并发操作冲突" },
            { 45036, "数据访问超过限制" },
            #endregion

            #region 通讯录/组织架构错误 (60000-60999)
            { 60001, "部门名称长度不符合限制（1-32字）" },
            { 60003, "部门ID不存在" },
            { 60004, "父部门不存在" },
            { 60005, "部门下存在成员，不允许删除" },
            { 60006, "部门下存在子部门，不允许删除" },
            { 60007, "不允许删除根部门" },
            { 60008, "部门已存在（ID或名称重复）" },
            { 60009, "部门名称含有非法字符（不能包含:?*\"<>|等）" },
            { 60010, "部门存在循环关系" },
            { 60011, "指定的成员/部门/标签参数无权限" },
            { 60020, "不安全的访问IP" },
            { 60021, "userid不在应用可见范围内" },
            { 60028, "不允许修改第三方应用的主页URL" },
            { 60030, "已超出应用可见范围" },
            { 60031, "当前应用已禁止调用API" },
            { 60102, "UserID已存在" },
            { 60103, "手机号码不合法（仅支持数字、加号、减号，≤32位）" },
            { 60104, "手机号码已存在（同一企业内不能重复）" },
            { 60105, "邮箱不合法（≤64位，需为有效格式）" },
            { 60106, "邮箱已存在（同一企业内不能重复）" },
            { 60107, "微信号不合法（3-20字节，由字母、数字、-、_组成，首字符为字母、-或_）" },
            { 60110, "用户所属部门数量超过限制（≤20个）" },
            { 60111, "UserID不存在" },
            { 60112, "成员name参数不合法（不能为空且≤64字符）" },
            { 60123, "无效的部门id" },
            { 60124, "无效的父部门id" },
            { 60125, "非法部门名字（不能为空且≤64字节，不能含:*?\"<>|等字符）" },
            { 60127, "缺少department参数" },
            { 60129, "成员手机和邮箱都为空" },
            { 60132, "is_leader_in_dept和department的元素个数不一致" },
            { 60136, "记录不存在" },
            { 60137, "家长手机号重复（同一家校通讯录中不能重复）" },
            { 60140, "无效的response_code（可能已过期）" },
            { 60141, "个人邮箱非法且没有手机号" },
            { 60142, "个人邮箱更新失败（已存在）" },
            { 60143, "企业邮箱非法（格式错误或已存在）" },
            { 60144, "企业邮箱更新失败" },
            { 60145, "企业邮箱已存在" },
            { 60146, "未找到手机号" },
            { 60147, "未找到邮箱" },
            { 60148, "未找到企业邮箱" },
            { 60149, "学生手机号已存在" },
            { 60150, "扩展属性类型不正确" },
            { 60151, "description字段长度超过限制" },
            { 60152, "拓展属性description字段非法" },
            #endregion

            #region  审批/打卡错误 (301000-301999)
            { 301002, "无权限操作指定的应用" },
            { 301005, "不允许删除创建者" },
            { 301007, "企业不可用（可能已解散或禁封）" },
            { 301012, "参数position不合法（≤128字符）" },
            { 301013, "参数telephone不合法（由数字和'-'组成，1-32位）" },
            { 301014, "参数english_name不合法（≤64字节，由字母、数字、点、减号、空格或下划线组成）" },
            { 301015, "参数mediaid不合法（需通过上传临时素材的图片类型获得）" },
            { 301016, "上传语音文件不符合系统要求（仅支持AMR格式，≤5M）" },
            { 301017, "上传语音文件仅支持AMR格式" },
            { 301019, "文件的md5不合法" },
            { 301021, "参数userid无效（至少有一个不存在于通讯录）" },
            { 301022, "获取打卡数据失败" },
            { 301023, "useridlist非法或超过限额（≤100）" },
            { 301024, "获取打卡记录时间间隔超限（开始>180天前，跨度≤7天）" },
            { 301025, "审批开放接口参数错误" },
            { 301026, "获取审批模板数据失败（可能未通过审核）" },
            { 301036, "不允许更新该用户的userid（仅系统自动生成的userid可修改一次）" },
            { 301039, "请求参数错误" },
            { 301042, "IP白名单限制（请求IP不在白名单范围）" },
            { 301048, "sdkfileid对应的文件不存在或已过期" },
            { 301049, "调用接口的应用未在紧急通知应用中关联" },
            { 301050, "紧急通知应用未开启" },
            { 301051, "紧急通知应用余额不足" },
            { 301052, "会话存档服务已过期" },
            { 301053, "会话存档服务未开启" },
            { 301055, "无审批应用权限/无审批应用数据拉取权限" },
            { 301056, "审批应用已停用" },
            { 301057, "提交审批单内部接口失败" },
            { 301058, "拉取会话数据请求超过大小限制" },
            { 301059, "非内部群，不提供数据" },
            { 301060, "拉取同意情况请求量过大（≤100个参数）" },
            { 301061, "userid或者exteropenid用户不存在" },
            { 301062, "没有假勤权限" },
            { 301063, "参数错误" },
            { 301064, "内部错误" },
            { 301073, "设置排班的时间参数不合法（仅支持未来日期）" },
            { 301079, "审批单假勤时间有冲突" },
            { 301080, "应打卡时间非法" },
            { 301081, "打卡时间非法（不在可打卡时间范围内）" },
            { 301082, "应打卡日期非法（当天不上班且不允许非工作日加班）" },
            { 301083, "打卡接口调用参数非法" },
            { 301084, "journal_uuid非法" },
            { 301085, "docid非法" },
            { 301086, "参数错误（参考errmsg）" },
            { 301087, "审批模板数超过上限" },
            { 301088, "无操作权限" },
            { 301089, "groupid非法" },
            { 301090, "打卡规则包含无权限id" },
            { 301091, "打卡规则range冲突" },
            { 301092, "应用无法修改此打卡规则（仅创建应用可修改）" },
            { 301093, "打卡规则字段非法" },
            { 301094, "打卡规则字段非法（包含非法字段）" },
            { 301095, "企业打卡规则总数超限" },
            { 301096, "创建打卡规则并发超限" },
            { 301097, "打卡规则中位置和wifi信息不能同时为空" },
            { 301099, "所属打卡规则不可提交【迟到】补卡" },
            { 301101, "所属打卡规则不可提交【早退】补卡" },
            { 301102, "所属打卡规则不可提交【缺卡】补卡" },
            { 301103, "所属打卡规则不可提交【其他异常】补卡" },
            { 301104, "所属打卡规则不可提交【迟到】、【其他异常】补卡" },
            { 301105, "所属打卡规则不可提交【早退】、【其他异常】补卡" },
            { 301111, "会话存档SDK版本过低，请更新" },
            { 301112, "请缩小查询时间范围重试" },
            { 301113, "审批中的审批打卡不能补卡" },
            { 301115, "模板已配置自定义打印格式，不支持API修改" },
            { 301116, "第三方不可调用该企业会话内容存档SDK" },
            #endregion

            #region 其他错误 (90000+)
            { 90001, "未认证摇一摇周边" },
            { 90002, "缺少摇一摇周边ticket参数" },
            { 90003, "摇一摇周边ticket参数不合法" },
            { 90100, "非法的对外属性类型" },
            { 90101, "对外属性：文本类型长度不合法（≤12个UTF8字符）" },
            { 90102, "对外属性：网页类型标题长度不合法（≤12个UTF8字符）" },
            { 90103, "对外属性：网页url不合法" },
            { 90104, "对外属性：小程序类型标题长度不合法（≤12个UTF8字符）" },
            { 90105, "对外属性：小程序类型pagepath不合法" },
            { 90106, "对外属性：请求参数不合法" },
            { 90142, "无效的场所码id" },
            { 90200, "缺少小程序appid参数" },
            { 90201, "小程序通知的content_item个数超过限制（≤10个）" },
            { 90202, "小程序通知中的key长度不合法（≤10个汉字）" },
            { 90203, "小程序通知中的value长度不合法（≤30个汉字）" },
            { 90204, "小程序通知中的page参数不合法" },
            { 90206, "小程序未关联到企业中" },
            { 90207, "不合法的小程序appid" },
            { 90208, "小程序appid不匹配" },
            { 90210, "需要用户进行成员授权" },
            { 90211, "登录时传入的suiteid不合法" },
            { 90212, "登录时传入的suiteid和使用的小程序绑定的第三方应用不匹配" },
            { 90300, "orderid不合法" },
            { 90302, "付费应用已过期" },
            { 90303, "付费应用超过最大使用人数" },
            { 90304, "订单中心服务异常，请稍后重试" },
            { 90305, "参数错误（参考errmsg）" },
            { 90306, "商户设置不合法" },
            { 90307, "登录态过期" },
            { 90308, "在开启IP鉴权的前提下，识别为无效的请求IP" },
            { 90309, "订单已经存在，请勿重复下单" },
            { 90310, "找不到订单" },
            { 90311, "关单失败（可能原因：未拉起支付/已关单/已支付/渠道失败等）" },
            { 90312, "退款请求失败（参考errmsg）" },
            { 90313, "退款调用频率限制" },
            { 90314, "订单状态错误（未支付或操作受限）" },
            { 90315, "退款请求失败，主键冲突（refund_id已使用）" },
            { 90316, "退款原因编号不对" },
            { 90317, "尚未注册成为供应商" },
            { 90318, "参数nonce_str为空或重复（判定为重放攻击）" },
            { 90319, "时间戳为空或与系统时间间隔太大" },
            { 90320, "订单token无效" },
            { 90321, "订单token已过有效时间" },
            { 90322, "旧套件（包含多个应用的套件）不支持支付系统" },
            { 90323, "单价超过限额" },
            { 90324, "商品数量超过限额" },
            { 90325, "预支单已经存在" },
            { 90326, "预支单单号非法" },
            { 90327, "该预支单已经结算下单" },
            { 90329, "订单号已经被预支单占用" },
            { 90330, "创建供应商失败" },
            { 90331, "更新供应商失败" },
            { 90332, "还没签署合同" },
            { 90338, "已经过了可退款期限" },
            { 90339, "供应商主体名包含非法字符" },
            { 90340, "创建客户失败（可能信息真实性校验失败）" },
            { 90341, "退款金额大于付款金额" },
            { 90342, "退款金额超过账户余额" },
            { 90343, "退款单号已经存在" },
            { 90344, "指定的付款渠道无效" },
            { 90345, "超过5w人民币不可指定微信支付渠道" },
            { 90346, "同一单的退款次数超过限制" },
            { 90347, "退款金额不可为0" },
            { 90348, "管理端没配置支付密钥" },
            { 90349, "记录数量太大" },
            { 90350, "银行信息真实性校验失败" },
            { 90351, "应用状态异常" },
            { 90352, "延迟试用期天数超过限制" },
            { 90353, "预支单列表不可为空" },
            { 90354, "预支单列表数量超过限制" },
            { 90355, "关联有退款预支单，不可删除" },
            { 90356, "不能0金额下单" },
            { 90357, "代下单必须指定支付渠道" },
            { 90358, "预支单或代下单，不支持部分退款" },
            { 90359, "预支单与下单者企业不匹配" },
            { 90381, "参数refunded_credit_orderid不合法" },
            #endregion

            #region 硬件/设备错误 (60000-60999)
            { 600001, "非法的sn（可能未登记）" },
            { 600002, "设备已注册" },
            { 600003, "不合法的硬件activecode" },
            { 600004, "该硬件尚未授权任何企业" },
            { 600005, "硬件Secret无效" },
            { 600006, "硬件deviceid无效" },
            { 600007, "缺少硬件sn" },
            { 600008, "缺少nonce参数" },
            { 600009, "缺少timestamp参数" },
            { 600010, "缺少signature参数" },
            { 600011, "签名校验失败" },
            { 600012, "长连接已经注册过设备" },
            { 600013, "缺少activecode参数" },
            { 600014, "设备未网络注册" },
            { 600015, "缺少secret参数" },
            { 600016, "设备未激活" },
            { 600017, "无效打卡时间" },
            { 600018, "无效的起始结束时间" },
            { 600019, "无效结束时间" },
            { 600020, "设备未登录" },
            { 600021, "设备sn已存在" },
            { 600023, "时间戳已失效" },
            { 600024, "固件大小超过5M" },
            { 600025, "固件名为空或者超过20字节" },
            { 600026, "固件信息不存在" },
            { 600027, "非法的固件参数" },
            { 600028, "固件版本已存在" },
            { 600029, "非法的固件版本" },
            { 600030, "缺少固件版本参数" },
            { 600031, "硬件固件不允许升级" },
            { 600032, "无法解析硬件二维码" },
            { 600033, "设备型号id冲突" },
            { 600034, "指纹数据大小超过限制" },
            { 600035, "人脸数据大小超过限制" },
            { 600036, "设备sn冲突" },
            { 600037, "缺失设备型号id" },
            { 600038, "设备型号不存在" },
            { 600039, "不支持的设备类型" },
            { 600040, "打印任务id不存在" },
            { 600041, "无效的offset或limit参数值" },
            { 600042, "无效的设备型号id" },
            { 600043, "门禁规则未设置" },
            { 600044, "门禁规则不合法" },
            { 600045, "设备已订阅企业信息" },
            { 600046, "操作id和用户userid不匹配" },
            { 600047, "secretno的status非法（需确认是否使用统一初始secretno的设备）" },
            { 600048, "无效的指纹算法" },
            { 600049, "无效的人脸识别算法" },
            { 600050, "无效的算法长度" },
            { 600051, "设备过期" },
            { 600052, "无效的文件分块" },
            { 600053, "该链接已经激活" },
            { 600054, "该链接已经订阅" },
            { 600055, "无效的用户类型" },
            { 600056, "无效的健康状态" },
            { 600057, "缺少体温参数" },
            { 600063, "硬件不支持扫描功能，禁止调用" },
            #endregion

            #region 家校沟通错误 (65000-65999)
            { 65000, "学校已经迁移" },
            { 65001, "无效的关注模式" },
            { 65002, "导入家长信息数量过多（每次最多1000个）" },
            { 65003, "学校尚未迁移" },
            { 65004, "组织架构不存在" },
            { 65005, "无效的同步模式" },
            { 65006, "无效的管理员类型" },
            { 65007, "无效的家校部门类型" },
            { 65008, "无效的入学年份" },
            { 65009, "无效的标准年级类型" },
            { 65010, "此userid并不是学生" },
            { 65011, "家长userid数量超过限制（每次最多100个）" },
            { 65012, "学生userid数量超过限制（每次最多10个）" },
            { 65013, "学生已有家长" },
            { 65014, "非学校企业" },
            { 65015, "父部门类型不匹配（班级需以年级为父部门）" },
            { 65018, "家长人数达到上限（未验证企业2000名，已验证企业20000名）" },
            { 65022, "家校通迅录无权限" },
            { 65023, "家校通迅录无权限（无权限获取该学生或家长）" },
            { 65024, "家长关联的老师不在应用可见范围" },
            #endregion

            #region 微盘/文件错误 (64000-64999)
            { 640001, "微盘不存在当前空间" },
            { 640002, "文件不存在" },
            { 640003, "文件已删除" },
            { 640004, "无权限访问" },
            { 640005, "成员不在空间内" },
            { 640006, "超出当前成员拥有的容量" },
            { 640007, "超出微盘的容量" },
            { 640008, "没有空间权限" },
            { 640009, "非法文件名" },
            { 640010, "超出空间的最大成员数" },
            { 640011, "json格式不匹配" },
            { 640012, "非法的userid" },
            { 640013, "非法的departmentid" },
            { 640014, "空间没有有效的管理员" },
            { 640015, "不支持设置预览权限（仅VIP用户可设置）" },
            { 640016, "不支持设置文件水印（仅VIP用户可设置）" },
            { 640017, "微盘管理端未开通API权限" },
            { 640018, "微盘管理端未设置编辑权限" },
            { 640019, "API调用次数超出限制（免费版1000次/企业/月，付费版10万次）" },
            { 640020, "非法的权限类型（普通文件：可下载/仅预览；微文档：可编辑/仅浏览）" },
            { 640021, "非法的fatherid（应为文件所在目录fileid，根目录时为fileid）" },
            { 640022, "非法的权限范围（1:指定人 2:企业内 3:企业外）" },
            { 640024, "非法的fileid" },
            { 640025, "非法的space_name" },
            { 640026, "非法的spaceid" },
            { 640027, "参数错误" },
            { 640028, "空间设置了关闭成员邀请链接" },
            { 640029, "只支持下载普通文件，不支持下载文件夹等其他非文件实体类型" },
            { 640032, "企业管理员已禁止此成员创建空间" },
            { 640035, "免费账号调用微盘api累计上限为1000次/月" },
            { 640039, "分块上传的size和block_sha不匹配" },
            { 640044, "空间已开启保密模式" },
            { 640045, "没有权限设置“可上传下载”权限" },
            { 640046, "没有权限设置“自定义”权限" },
            { 640047, "上传文件大小超过限制（单个文件≤20G）" },
            { 640048, "上传流程异常不能重复调用file_upload_finish" },
            { 640051, "参数错误（检查参数是否符合API文档的要求）" },
            { 640052, "文档名不合法（检查长度和后缀）" },
            { 640053, "管理员数量达到上限（最多3个）" },
            { 640054, "文档类型不合法" },
            { 640055, "文档成员达到上限" },
            { 640056, "欲删除的成员当前不在文档成员列表中" },
            { 640060, "空间文件数已达上限" },
            { 640061, "智能表api内容权限规则名称重复（或name=“全员权限”）" },
            { 640062, "智能表api内容权限规则名称长度超限（≤20字符）" },
            { 640063, "智能表api指定成员权限规则数量超限（每个文档额外成员权限≤20个）" },
            { 640065, "智能表api额外指定成员权限不存在（ruleid非法）" },
            { 640067, "智能表api删除的成员不存在" },
            { 640069, "智能表api规则成员数目超限（≤500人）" },
            { 640070, "智能表api设置区域权限-全局行规则不能设置局部行规则" },
            { 640071, "智能表api设置区域权限-行规则数目非法（0或>20）" },
            { 640072, "智能表api设置区域权限-行规则缺少fieldid" },
            { 640073, "智能表api设置区域权限-行规则操作类型无需有值（如oper_type=1/6/7时value应为空）" },
            { 640074, "智能表api设置区域权限-行规则操作类型必须有值（如oper_type=2/3/4/5时value必填）" },
            { 640075, "智能表api设置区域权限-行规则操作类型未定义（如oper_type不在1-7或字段类型不匹配）" },
            { 640076, "智能表api设置区域权限-行规则其他权限非法（other_priv应为1-2）" },
            { 640077, "智能表api设置区域权限-行规则类型未定义（record_range_type应为1-3）" },
            { 640078, "智能表api设置区域权限-全局列规则不能设置局部列规则" },
            { 640079, "智能表api设置区域权限-列规则缺少fieldid" },
            { 640080, "智能表api设置区域权限-列规则fieldid重复" },
            { 640081, "智能表api设置区域权限-列规则非法（权限冲突）" },
            { 640082, "智能表api设置区域权限-列规则最小权限非法（缺失字段权限）" },
            { 640083, "智能表api设置区域权限-列规则默认权限非法（全员权限不能设置default_rule）" },
            { 640084, "智能表api设置区域权限-列规则can相关操作权限非法（冲突）" },
            { 640085, "智能表api设置区域权限-子表id为空" },
            { 640086, "智能表api设置区域权限-子表id重复" },
            { 640087, "智能表api设置区域权限-子表priv非法（如priv=1/4时不能设置其他字段）" },
            { 640088, "智能表api设置区域权限-子表priv.priv类型非法（应为1-4）" },
            { 640089, "智能表api设置区域权限-成员类型非法" },
            { 640090, "智能表api设置区域权限-成员重复" },
            { 640091, "智能表api设置区域权限-成员非法（不存在）" },
            { 640092, "智能表api设置列类型list为空（field_range_type=2时需设置field_rule_list）" },
            { 640093, "智能表api全员权限不能设置名称" },
            { 640094, "智能表api创建者列类型非法（CREATED_USER字段oper_type必须为1）" },
            { 640095, "智能表api列类型非法（缺失或不在允许范围内）" },
            { 640096, "智能表api表格id非法（不存在）" },
            { 640097, "智能表api表格日期数字文件列设置错误（日期/数字/文件列需同时可编辑+可查看）" },
            { 640098, "智能表api表格引用列设置错误（引用/公式不可编辑）" },
            { 640100, "智能表api表格系统属性列设置错误（系统字段不可编辑）" },
            { 640101, "智能表api表格系统属性列设置错误（创建人/修改人/创建时间/修改时间仅可查看）" },
            #endregion

            #region  其他错误 (70000+)
            { 701001, "不是license基础账号" },
            { 701002, "不合法的license账号" },
            { 701003, "激活码已绑定" },
            { 701004, "用户未激活该类型激活码，不允许续期" },
            { 701005, "无效的license订单" },
            { 701006, "不合法的license账号类型" },
            { 701007, "不合法的账号类型" },
            { 701008, "没有合法的有互通license的用户" },
            { 701009, "灰度期间，month只能为1个月" },
            { 701010, "所有的account_code都非法" },
            { 701011, "userid已经绑定" },
            { 701012, "active_code超过绑定有效期" },
            { 701013, "灰度期间只允许续期一次" },
            { 701014, "jobid最多关联100w个userid" },
            { 701015, "没有第三方或者代开发授权，不允许下单" },
            { 701016, "账号未激活或者已经过期" },
            { 701017, "账号30天内迁移过" },
            { 701018, "接收账号已有相同类型的账号且剩余有效时长超过20天" },
            { 701019, "用户userid非法或者跨企业" },
            { 701020, "有重复的userid" },
            { 701021, "非法的激活码" },
            { 701022, "激活码还在生成中" },
            { 701023, "有重复的激活码" },
            { 701024, "批量操作全部失败" },
            { 701025, "批量操作传了空列表" },
            { 701026, "列表数量超过最大值" },
            { 701027, "测试企业购买账号个数超限" },
            { 701028, "测试企业购买月份超限（最多1个月）" },
            { 701029, "测试企业只允许续期一次" },
            { 701030, "新激活码有效期累加用户绑定的旧激活码有效期超过5年" },
            { 701031, "有订单在迁移中" },
            { 701032, "有订单未支付" },
            { 701033, "有订单正在生成激活码中" },
            { 701034, "历史企业需迁移完成后才能购买license订单" },
            { 701035, "有正式订单，无法添加测试订单" },
            { 701036, "有生效中的测试订单，无法添加订单" },
            { 701037, "存在订单申请退款中" },
            { 701038, "民生企业只允许下单12个月" },
            { 701039, "民生企业不允许续期" },
            { 701040, "民生企业购买数量超过限制" },
            { 701051, "没有共享应用给下游企业" },
            { 701054, "激活码分享自上游企业" },
            { 701055, "激活码分享给了下游企业" },
            { 701056, "总分享激活码数超上下游通讯录人数2倍" },
            { 701057, "服务商没有授权上游企业" },
            { 701063, "企业接口许可状态已关闭" },
            { 701070, "无效的自动激活状态" },
            { 701071, "从未为授权企业购买过接口许可" },
            { 701081, "更新激活码时写冲突" },
            { 701082, "用户已激活时，旧码剩余时长不能超过20天" },
            { 701083, "订单未支付" },
            { 701084, "订单不是未支付" },
            { 701085, "订单无法操作" },
            { 701086, "订单不属于该企业" },
            { 701087, "授权企业未安装互通权限应用（客户联系/微信客服）" },
            { 701088, "用户不在服务商应用的可见范围内" },
            { 701089, "用户不在服务商互通权限应用的可见范围内" },
            { 701090, "续期订单中全部账号的续期天数都等于0" },
            { 701099, "用户没有有效的接口许可" },
            { 701100, "时间戳不合法（开始<结束，跨度≤14天，非专业版企业只能查90天内）" },
            { 701101, "limit大小超过上限（≤1000）" },
            { 701102, "查询用户数超过上限（≤100）" },
            { 701103, "操作类型不合法" },
            { 701104, "操作来源不合法" },
            { 701105, "cursor不合法（需使用上次返回的cursor）" },
            { 701107, "用户不在文档内容存档范围或不在应用可见范围" },
            { 701108, "docid不合法" },
            { 701109, "导出格式不合法" },
            { 701112, "民生行业优惠政策已到期" },
            { 701120, "该接口不支持传父订单id" },
            { 701121, "测试企业不允许调用多企业下单接口" },
            { 701122, "多企业下单接口全部企业无效" },
            { 701123, "多企业下单接口每个jobid最多关联10万个企业" },
            { 701124, "corpid重复" },
            { 701125, "jobid未提交" },
            { 701126, "jobid已提交" },
            { 701127, "客户非测试企业，不能添加测试订单" },
            { 701128, "客户是测试企业，不能添加非测试订单" },
            { 701129, "企业下无服务商的应用订单" },
            { 701130, "企业下服务商应用订单均已过期" },
            { 701131, "无应用订单处于免费试用状态，但购买账号数超过免费试用上限" },
            { 701132, "购买时长≤3个月时，购买账号数≤通讯录人数2倍" },
            { 701133, "无应用订单处于免费试用状态，购买时长≤3个月" },
            { 701134, "操作过于频繁" },
            { 701135, "接口许可购买时长不可低于应用订单时长" },
            { 701139, "未授权会话存档应用，无法创建会话存档订单" },
            { 701140, "已经购买过此版本会话存档账号" },
            { 701141, "未购买此版本会话存档账号或已过期" },
            { 701142, "订单可能被其他并发请求更新" },
            { 701143, "存在未支付或退款中的订单，不能下单" },
            { 701146, "海外企业不能购买会话存档" },
            { 701147, "余额支付超过单次支付限额上限" },
            { 701149, "只有临过期60天可以续期" },
            { 701150, "测试企业不支持分配许可" },
            { 701151, "jobid不正确或已失效" },
            { 701152, "docid不正确或文档不是公开状态" },
            { 701153, "可查询文档列表的用户已达上限" },
            { 701154, "可导出的文档数量已达上限" },
            { 701158, "不支持的订单类型" },
            { 701159, "不合法的购买人数" },
            { 701160, "存在未通过支付检查的企业" },
            { 701161, "订单已指定使用微信网银支付" },
            { 701163, "合法的生效时间" },
            { 701164, "不存在可升级的版本" },
            { 701165, "缺少chat_archive_api字段" },
            { 701166, "操作者没有权限，或已离职/退出/禁用" },
            { 701167, "购买人数超出上限" },
            { 701169, "只允许取消未支付的订单" },
            { 701170, "群活码第三方限免许可到期" },
            { 701200, "其他镜像发布中，禁止发布" },
            { 701230, "指定的原始的开始或结束时间有误" },
            { 701231, "存在待生效的版本" },
            { 701250, "时间戳不合法（开始<结束，跨度≤14天）" },
            { 701252, "cursor不合法" },
            { 710000, "非法的open_corpid" },
            { 710002, "非法的open_pending_corpid" },
            { 710003, "非法的formid" },
            { 710004, "非法的mailid" },
            { 710006, "非法的tmp_external_userid" },
            { 710007, "非法的gateway_id" },
            { 710200, "不合法的运动步数凭证" },
            { 710201, "用户不允许获取运动步数" },
            { 710400, "硬件云端接入设备model_accesstoken非法" },
            { 710401, "硬件云端接入设备model_accesstoken过期" },
            { 710402, "硬件云端接入设备model_ticket非法" },
            { 710403, "缺少model_access_token参数" },
            { 710600, "消息msgid或者密钥信息不正确" },
            { 710601, "msgid不正确" },
            { 710602, "msgtype不正确" },
            { 710603, "密钥信息不正确" },
            { 710605, "消息解密失败" },
            { 710606, "群ID不在授权范围内" },
            { 710607, "部门不在授权范围内" },
            { 710608, "用户不在授权范围内" },
            { 710609, "外部联系人的跟进人不在授权范围内" },
            { 710610, "关键词和关键行为不能同时为空" },
            { 710611, "cursor不正确" },
            { 710612, "关键词规则ID不存在" },
            { 710613, "msgid重复" },
            { 710614, "群内成员都不在授权范围内" },
            { 710615, "session_type不正确" },
            { 710616, "提交分析的任务类型不正确" },
            { 710617, "分析任务已经提交过了" },
            { 710618, "分析任务还未提交" },
            { 710619, "关键词规则数量已经超过上限" },
            { 710620, "关键词规则ID不正确" },
            { 710621, "电话号码格式不正确" },
            { 710622, "银行卡号格式不正确" },
            { 710623, "单次分析任务的消息数量超过上限" },
            { 710624, "不合法的群ID" },
            { 710625, "分析任务类型不正确" },
            { 710626, "自定义ID已存在" },
            { 710627, "空间不足" },
            { 710628, "摘要长度超过限制" },
            { 710629, "导出消息数量超过上限" },
            { 710632, "未创建过知识集" },
            { 710633, "分析任务失败" },
            { 710634, "分析任务失败" },
            { 710635, "自有模型未部署" },
            { 710636, "不合法的能力id" },
            { 710637, "所有消息均分析失败" },
            { 710638, "调用程序失败" },
            { 710639, "请求的内容或结果包含不合适的内容" },
            { 710640, "不支持的应用类型" },
            { 710641, "应用没有数据与智能专区权限" },
            { 710642, "等待程序/模型返回结果中" },
            { 710643, "应用没有知识集的授权" },
            { 710644, "应用没有通用模型的授权" },
            { 710645, "程序不存在或状态异常" },
            { 710646, "不合法的notify_id" },
            { 710647, "输入协议不匹配" },
            { 710648, "非法的关键行为值" },
            { 710649, "群id数量超过上限" },
            { 710650, "缺少关键词列表" },
            { 710651, "没有付费版本" },
            { 710652, "会话内容存档超过90天，已失效" },
            { 710653, "试用到期超过30天，试用期间的会话内容存档已失效" },
            { 710654, "付费到期超过30天，付费期间的会话内容存档已失效" },
            { 710655, "授权了有多个版本的存档范围，不允许迁移" },
            { 710656, "迁入目标应用已经设置了公钥，不允许迁移" },
            { 710657, "其他应用在迁移中，只能使用该应用继续重试" },
            { 710658, "已经迁移过了" },
            { 710659, "第三方存档接口还未设置公钥" },
            { 710660, "数据专区示例镜像内部错误" },
            { 710671, "调试凭证已过期" },
            { 710672, "服务商非测试企业或应用非测试授权安装，不允许使用调试模式" },
            { 710673, "模型/程序不在调试模式下" },
            { 710674, "调用专区连接失败" },
            { 710675, "调用专区读写超时" },
            { 710676, "专区程序返回的http状态码不为200" },
            { 710677, "专区解密或者验签失败" },
            { 710678, "子表数量限制255个、单个子表限制150w格子/20w行/2000列" },
            { 710682, "大模型服务繁忙，请重试" },
            { 730000, "非法的tmp_openid" },
            { 730001, "非法的录制文件id" },
            { 730002, "非法的录制id" },
            { 730003, "非法的子会议id" },
            { 730004, "非法的会议号" },
            { 730005, "不能操作别的应用创建的会议" },
            { 730006, "非法的报名id" },
            { 730007, "企业不是专业版或购买的会议室数量不足10个" },
            { 730008, "会议已删除" },
            { 730009, "会议参与者必须包含管理员" },
            { 730010, "会议不是通过API创建的" },
            { 730011, "不支持该类型的会议" },
            { 751001, "企业未开通邮箱高级功能" },
            { 751002, "企业邮箱高级功能分配余额不足" },
            { 770000, "高级功能额度不足" },
            { 770003, "高级功能全企业购买模式不允许分配和撤销高级功能账户" },
            { 770004, "不存在合法的用户列表" },
            { 770005, "未开通业务高级功能" },
            { 770006, "不合法的jobid" },
            { 770007, "任务正在处理中" },
            { 770008, "存在用户账户分配高级功能超过7天，不允许撤销" },
            { 770009, "请求中所有合法用户账户均是高级功能账户" },
            { 770010, "已在腾讯会议侧购买高级功能，不允许通过此接口操作" },
            { 770011, "不合法的applyid" },
            { 770013, "仅支持修改API状态下创建的高级功能申请单" },
            { 770014, "高级功能申请单状态冲突" },
            { 770015, "高级功能审批单审批人信息非法" },
            { 770016, "不合法的审批url" },
            { 770017, "当前审批单状态无法更新" },
            { 790010, "任务不在进行中" },
            { 790011, "不合法的任务类型" },
            { 790012, "不合法的json模板" },
            { 790013, "不合法的json结果" },
            { 790014, "json结果跟模板不匹配" },
            { 790015, "不合法的json请求包" },
            { 790016, "json请求包跟模板不匹配" },
            { 790017, "不合法的job_info" },
            { 790020, "模型或程序与该应用不存在关联关系" },
            { 790021, "程序不是正常部署状态" },
            { 790022, "请求的结果包含不合适的内容" },
            { 790023, "模型或程序的请求正在执行中" },
            { 790024, "不能跨应用使用知识库" },
            { 790025, "知识库內容中的web_url参数非法" },
            { 790026, "知识库中內容总数超过限制" },
            { 790027, "一个企业内的知识库数量超过限制" },
            { 790028, "不能删除知识库中的全部內容" },
            { 790029, "知识库中存在相同的web_url" },
            { 790032, "非法的知识库內容名称（检查长度和后缀）" },
            { 790033, "名字中不能包含不可见字符" },
            { 790034, "不能使用已删除的知识库" },
            { 790040, "调用模型输入展开后长度过长" },
            { 790041, "调用模型传入的所有消息内容都获取失败" },
            { 800000, "不合法的知识库id" },
            { 800001, "不合法的模型或程序id" },
            { 800002, "模型或程序未部署" },
            { 800003, "模型或程序的能力id不存在" },
            { 810000, "无效的欢迎语消费码" },
            { 810001, "校验好友关系失败" },
            { 810002, "消息发送限制（超过回复时间或条数）" },
            { 810003, "智能账号状态异常" },
            { 810004, "智能账号审核未通过" },
            { 830001, "用于上传临时素材的url非法" },
            { 830002, "下载的文件太大，或指定的Range范围太大" },
            { 830003, "用过上传临时素材的url下载数据失败" },
            { 842002, "代开发应用模版未上线" },
            { 842003, "不是代开发应用模版" },
            { 842004, "代开发应用模版数量不合法" },
            { 842005, "不支持的应用类型" },
            { 842006, "已存在代开发应用授权" },
            { 844001, "非法的output_file_format" },
            { 845001, "openid账号类型不是公众号或小程序" },
            { 845002, "openid认证主体和企业认证主体不一致" },
            { 845003, "unionid认证主体和企业认证主体不一致" },
            { 846000, "不是代开发或者第三方应用" },
            { 2000002, "CorpId参数无效" },
            { 2000003, "不存在远程开门的数据" },
            { 2000004, "远程开门数据记录的设备与当前请求设备不匹配" },
            { 2000007, "远程开门上报开门状态错误" },
            { 2000009, "门禁扫码开门上报开门operid非法" },
            { 2000010, "门禁扫码开门上报开门状态错误" },
            { 2022029, "智能表的行/列/大小达到上限" },
            { 2022030, "不合法的字段标题（重复或为空）" },
            { 2022031, "ID已经存在（视图/字段/记录ID重复）" },
            { 2022032, "不合法的视图属性" },
            { 2022033, "不合法的筛选条件" },
            { 2022034, "不合法的日期值" },
            { 2022035, "不合法的关联值" },
            { 2022037, "不合法的地理位置值" },
            { 2022040, "不合法的字段列属性" },
            { 2022041, "不合法的关联字段列属性" },
            { 2022043, "不合法的地址位置字段列属性" },
            { 2022047, "不合法的自动编号字段列属性" },
            { 2022048, "没有编辑权限" },
            { 2022049, "当前视图已被锁定，无法修改视图结构" },
            { 2022050, "当前视图不可见，无法修改视图结构" },
            { 2022051, "无法修改应用关联的记录" },
            { 2022052, "最多固定3个字段到工具栏" },
            { 2400001, "请求参数错误" },
            { 2400003, "访问的资源不存在" },
            { 2400004, "创建的资源已存在" },
            { 2400005, "不允许访问该资源" },
            { 2400006, "资源操作未授权" },
            { 2400007, "请求数超过限制" },
            { 2400008, "访问了超过范围的资源" },
            { 2543337, "数据加载中，请稍后重试" }
            #endregion
        }.ToFrozenDictionary();

        /// <summary>
        /// 获取错误描述
        /// </summary>
        /// <param name="errorCode">错误代码</param>
        /// <returns>错误描述</returns>
        [MethodImpl(MethodImplOptions.AggressiveInlining)] //指示编译器和运行时如何处理方法调用（激进内联）。
        public static string GetDescription(int errorCode)
        {
            return ErrorMessages.TryGetValue(errorCode, out var message)
                ? message
                : $"未定义的误代码: {errorCode}";
        }

        /// <summary>
        /// 检查是否为成功状态
        /// </summary>
        /// <param name="errorCode">错误代码</param>
        /// <returns>是否成功</returns>
        [MethodImpl(MethodImplOptions.AggressiveInlining)] //指示编译器和运行时如何处理方法调用（激进内联）。
        public static bool IsSuccess(int errorCode) => errorCode == 0;

        /// <summary>
        /// 检查是否包含指定错误代码
        /// </summary>
        /// <param name="errorCode">错误代码</param>
        /// <returns>是否包含</returns>
        [MethodImpl(MethodImplOptions.AggressiveInlining)] //指示编译器和运行时如何处理方法调用（激进内联）。
        public static bool Contains(int errorCode) => ErrorMessages.ContainsKey(errorCode);
    }
}
